Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(reactivity): when setting a property the shallowReactive object s… #12688

Closed
wants to merge 1 commit into from

Conversation

dupfei
Copy link

@dupfei dupfei commented Jul 21, 2022

…hould not unwrap refs and the reactive object should retain readonly proxy

What kind of change does this PR introduce? (check at least one)

  • Bugfix
  • Feature
  • Code style update
  • Refactor
  • Build-related changes
  • Other, please describe:

Does this PR introduce a breaking change? (check one)

  • Yes
  • No

If yes, please describe the impact and migration path for existing applications:

The PR fulfills these requirements:

If adding a new feature, the PR's description includes:

  • A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)

Other information:

…hould not unwrap refs and the reactive object should retain readonly proxy
@yyx990803
Copy link
Member

Can you add relevant test cases for the bugs you are fixing?

@yyx990803
Copy link
Member

Thanks for the PR - as I was writing the test case for it, I discovered some edge cases that wasn't even working correctly in Vue 3:

  1. Setting a readonly object to a ref nested in a reactive object
  2. Setting a readonly/shallow object as ref value

These are fixed for Vue 3 in vuejs/core@a95554d

This PR also has subtle issues that are better explained via test cases - I also took the opportunity to align the behavior with Vue 3, see 2af751b.

@yyx990803 yyx990803 closed this Jul 22, 2022
@dupfei
Copy link
Author

dupfei commented Jul 22, 2022

Sorry, I just saw it. Is the property of the reactive object always a ref once it is assigned to a ref, just hidden by the internal unwrap ref behavior?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants